\hypertarget{classAprilTags_1_1TagFamily}{}\doxysection{April\+Tags\+::Tag\+Family Class Reference}
\label{classAprilTags_1_1TagFamily}\index{AprilTags::TagFamily@{AprilTags::TagFamily}}


Generic class for all tag encoding families.  




{\ttfamily \#include $<$Tag\+Family.\+h$>$}



Collaboration diagram for April\+Tags\+::Tag\+Family\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=187pt]{classAprilTags_1_1TagFamily__coll__graph}
\end{center}
\end{figure}
\doxysubsection*{Classes}
\begin{DoxyCompactItemize}
\item 
class \mbox{\hyperlink{classAprilTags_1_1TagFamily_1_1TableInitializer}{Table\+Initializer}}
\begin{DoxyCompactList}\small\item\em Initializes the static pop\+Count\+Table. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classAprilTags_1_1TagFamily_a347dddd1c2ea72dd4cc398d86056b6f1}\label{classAprilTags_1_1TagFamily_a347dddd1c2ea72dd4cc398d86056b6f1}} 
\mbox{\hyperlink{classAprilTags_1_1TagFamily_a347dddd1c2ea72dd4cc398d86056b6f1}{Tag\+Family}} (const \mbox{\hyperlink{classAprilTags_1_1TagCodes}{Tag\+Codes}} \&tag\+Codes, const size\+\_\+t \mbox{\hyperlink{classAprilTags_1_1TagFamily_add18a3ccb0b2094f5c8fc033eac69902}{black\+Border}})
\begin{DoxyCompactList}\small\item\em The codes array is not copied internally and so must not be modified externally. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classAprilTags_1_1TagFamily_a224096afb0db67e1da689e773eec9123}\label{classAprilTags_1_1TagFamily_a224096afb0db67e1da689e773eec9123}} 
void {\bfseries set\+Error\+Recovery\+Bits} (int b)
\item 
\mbox{\Hypertarget{classAprilTags_1_1TagFamily_ac0e6f97b8d5e11d39fc255f6c0df1e26}\label{classAprilTags_1_1TagFamily_ac0e6f97b8d5e11d39fc255f6c0df1e26}} 
void {\bfseries set\+Error\+Recovery\+Fraction} (float v)
\item 
\mbox{\Hypertarget{classAprilTags_1_1TagFamily_aa7c76606756cc00d32bac0b23a4b4edf}\label{classAprilTags_1_1TagFamily_aa7c76606756cc00d32bac0b23a4b4edf}} 
void \mbox{\hyperlink{classAprilTags_1_1TagFamily_aa7c76606756cc00d32bac0b23a4b4edf}{decode}} (\mbox{\hyperlink{structAprilTags_1_1TagDetection}{Tag\+Detection}} \&det, unsigned long long r\+Code) const
\begin{DoxyCompactList}\small\item\em Given an observed tag with code \textquotesingle{}r\+Code\textquotesingle{}, try to recover the id. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classAprilTags_1_1TagFamily_acfc43754714a53bd823c87475da525d4}\label{classAprilTags_1_1TagFamily_acfc43754714a53bd823c87475da525d4}} 
void \mbox{\hyperlink{classAprilTags_1_1TagFamily_acfc43754714a53bd823c87475da525d4}{print\+Hamming\+Distances}} () const
\begin{DoxyCompactList}\small\item\em Prints the hamming distances of the tag codes. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Static Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classAprilTags_1_1TagFamily_a9cadaaad100d5543fda9fed4a3801d0d}\label{classAprilTags_1_1TagFamily_a9cadaaad100d5543fda9fed4a3801d0d}} 
static unsigned long long {\bfseries rotate90} (unsigned long long w, int d)
\item 
\mbox{\Hypertarget{classAprilTags_1_1TagFamily_afe7c89b89bb0f06d501d920243f71d82}\label{classAprilTags_1_1TagFamily_afe7c89b89bb0f06d501d920243f71d82}} 
static int \mbox{\hyperlink{classAprilTags_1_1TagFamily_afe7c89b89bb0f06d501d920243f71d82}{hamming\+Distance}} (unsigned long long a, unsigned long long b)
\begin{DoxyCompactList}\small\item\em Computes the hamming distance between two unsigned long longs. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classAprilTags_1_1TagFamily_aebb14c05a4131d7af7f4907b3c623b2d}\label{classAprilTags_1_1TagFamily_aebb14c05a4131d7af7f4907b3c623b2d}} 
static unsigned char \mbox{\hyperlink{classAprilTags_1_1TagFamily_aebb14c05a4131d7af7f4907b3c623b2d}{pop\+Count\+Real}} (unsigned long long w)
\begin{DoxyCompactList}\small\item\em How many bits are set in the unsigned long long? \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classAprilTags_1_1TagFamily_abbb2c1d5b18be61874b191a1fb77a4bf}\label{classAprilTags_1_1TagFamily_abbb2c1d5b18be61874b191a1fb77a4bf}} 
static int {\bfseries pop\+Count} (unsigned long long w)
\end{DoxyCompactItemize}
\doxysubsection*{Public Attributes}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classAprilTags_1_1TagFamily_add18a3ccb0b2094f5c8fc033eac69902}\label{classAprilTags_1_1TagFamily_add18a3ccb0b2094f5c8fc033eac69902}} 
int \mbox{\hyperlink{classAprilTags_1_1TagFamily_add18a3ccb0b2094f5c8fc033eac69902}{black\+Border}}
\begin{DoxyCompactList}\small\item\em Numer of pixels wide of the inner black border. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classAprilTags_1_1TagFamily_ad45fd65efdd20e0895e7717d737f2bd4}\label{classAprilTags_1_1TagFamily_ad45fd65efdd20e0895e7717d737f2bd4}} 
int \mbox{\hyperlink{classAprilTags_1_1TagFamily_ad45fd65efdd20e0895e7717d737f2bd4}{bits}}
\begin{DoxyCompactList}\small\item\em Number of bits in the tag. Must be n$^\wedge$2. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classAprilTags_1_1TagFamily_a70c25d3f3802bde5122643490332f8c6}\label{classAprilTags_1_1TagFamily_a70c25d3f3802bde5122643490332f8c6}} 
int \mbox{\hyperlink{classAprilTags_1_1TagFamily_a70c25d3f3802bde5122643490332f8c6}{dimension}}
\begin{DoxyCompactList}\small\item\em Dimension of tag. e.\+g. for 16 bits, dimension=4. Must be sqrt(bits). \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classAprilTags_1_1TagFamily_a4c431ef9dd016c283d9d5e5814be652b}\label{classAprilTags_1_1TagFamily_a4c431ef9dd016c283d9d5e5814be652b}} 
int \mbox{\hyperlink{classAprilTags_1_1TagFamily_a4c431ef9dd016c283d9d5e5814be652b}{minimum\+Hamming\+Distance}}
\begin{DoxyCompactList}\small\item\em Minimum hamming distance between any two codes. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classAprilTags_1_1TagFamily_a2ea1cce664632233279284c37743b813}\label{classAprilTags_1_1TagFamily_a2ea1cce664632233279284c37743b813}} 
int {\bfseries error\+Recovery\+Bits}
\item 
\mbox{\Hypertarget{classAprilTags_1_1TagFamily_a68483a11d1c70e1d60c6d21fa5ffc392}\label{classAprilTags_1_1TagFamily_a68483a11d1c70e1d60c6d21fa5ffc392}} 
std\+::vector$<$ unsigned long long $>$ \mbox{\hyperlink{classAprilTags_1_1TagFamily_a68483a11d1c70e1d60c6d21fa5ffc392}{codes}}
\begin{DoxyCompactList}\small\item\em The array of the codes. The id for a code is its index. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Static Public Attributes}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classAprilTags_1_1TagFamily_a544e4cd74d55a4920b5ac73fb2434852}\label{classAprilTags_1_1TagFamily_a544e4cd74d55a4920b5ac73fb2434852}} 
static const int {\bfseries pop\+Count\+Table\+Shift} = 12
\item 
\mbox{\Hypertarget{classAprilTags_1_1TagFamily_ac45fccc089013c591aafb6f44b6a7548}\label{classAprilTags_1_1TagFamily_ac45fccc089013c591aafb6f44b6a7548}} 
static const unsigned int {\bfseries pop\+Count\+Table\+Size} = 1 $<$$<$ pop\+Count\+Table\+Shift
\item 
\mbox{\Hypertarget{classAprilTags_1_1TagFamily_a50c1c51fa390252c1d50c7c795e18f79}\label{classAprilTags_1_1TagFamily_a50c1c51fa390252c1d50c7c795e18f79}} 
static unsigned char {\bfseries pop\+Count\+Table} \mbox{[}pop\+Count\+Table\+Size\mbox{]}
\item 
\mbox{\Hypertarget{classAprilTags_1_1TagFamily_ad5842159075d2479924a989983500b1a}\label{classAprilTags_1_1TagFamily_ad5842159075d2479924a989983500b1a}} 
static class \mbox{\hyperlink{classAprilTags_1_1TagFamily_1_1TableInitializer}{April\+Tags\+::\+Tag\+Family\+::\+Table\+Initializer}} {\bfseries initializer}
\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
Generic class for all tag encoding families. 

The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
\item 
calico/third\+\_\+party/apriltags/apriltags/Tag\+Family.\+h\item 
calico/third\+\_\+party/apriltags/src/Tag\+Family.\+cc\end{DoxyCompactItemize}
